package com.hly.musicbackground.model.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hly.musicbackground.domain.User;
import com.hly.musicbackground.model.user.VO.UserInfoVO;
import com.hly.musicbackground.model.user.params.UserUpdateInfoParams;

public interface UserService extends IService<User> {

    /**
     * 根据邮箱获取用户头像
     * @param mail 邮箱【必填】
     * @return String 头像链接
     * */
    String getHeadImage(String mail);

    /**
     * 根据用户id获取用户信息
     * @param id 用户id【必填】
     * @return UserInfoVO 用户信息
     * */
    UserInfoVO getUserInfo(int id);

    /**
     * 根据用户id获取用户信息
     * @param mail 用户id【必填】
     * @return User 用户对象
     * */
    User getUserInfo(String mail);

    /**
     * 根据用户id获取用户信息
     * @param id 用户id【必填】
     * @param password 用户密码【必填】
     * @return User 用户对象
     * */
    User getUserInfo(int id, String password);

    /**
     * 根据用户id获取用户信息
     * @param mail 用户邮箱【必填】
     * @param password 用户密码【必填】
     * @return User 用户对象
     * */
    User getUserInfo(String mail, String password);

    /**
     * 根据用户id修改用户信息
     * @param id 用户id【必填】
     * @param params 需要修改的信息【选填】
     * @return User 用户对象
     * */
    void updateInfo(int id, UserUpdateInfoParams params);

    void setUserRoot(int userId, int root);
}
